﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SmartMathLibrary
{
    /// <summary>
    /// This class describes the eigen infromation of a matrix.
    /// </summary>
    [Serializable]
    public class EigenInformation
    {
        /// <summary>
        /// The eigenvalues.
        /// </summary>
        private readonly List<ComplexNumber> eigenValues;

        /// <summary>
        /// The eigenvectors.
        /// </summary>
        private readonly List<GeneralComplexVector> eigenVectors;

        /// <summary>
        /// Initializes a new instance of the <see cref="EigenInformation"/> class.
        /// </summary>
        public EigenInformation()
        {
            this.eigenValues = new List<ComplexNumber>();
            this.eigenVectors = new List<GeneralComplexVector>();
        }

        /// <summary>
        /// Gets the eigenvalues.
        /// </summary>
        /// <value>The eigenvalues.</value>
        public List<ComplexNumber> EigenValues
        {
            get { return eigenValues; }
        }

        /// <summary>
        /// Gets the eigenvectors.
        /// </summary>
        /// <value>The eigenvectors.</value>
        public List<GeneralComplexVector> EigenVectors
        {
            get { return eigenVectors; }
        }
    }
}